package com.demo.springboot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.PropertySource;

/***
 * 包名： spring-boot-starter-actuator
 *
 * 在SpringBoot2.0 中 需要增加属性将想要的监控点暴露：
 *      management.endpoints.web.exposure.include=*
 *      management.endpoints.web.exposure.exclude=env,beans
 *
 *  -------------------------------
 *  自定义健康检查：
 *  新建一个类实现HealthIndicator接口即可
 *  注： SpringBoot2.0 中默认详细信息不展示
 *       需要：management.endpoint.health.show-details=always  配置才会显示详细信息
 *
 *  -------------------   SpringBoot2.0 官方迁移指南(中文译文)：http://ju.outofmemory.cn/entry/346575

 *  SpringBoot 2.0 中 CounterService / GaugeService 已经移除，应采用如下方式：
 *     @Autowired
 *     private MeterRegistry meterRegistry;
 *
 *        计数：
 *          Counter counter =  meterRegistry.counter("user.home.request.count");
 *          counter.increment(1);
 *        统计某个值：
 *          meterRegistry.gauge("user.home.request.count",11);
 *
 *          或者：
 *          Metrics.counter("user.home.request.count");  // 计数：
 *          Metrics.gauge("user.home.request.count",11);  // 统计某个值：
 *
 *   -----------------工具查看监控输出---------
 *   Metric 数据输出到jmx（还可以输出到redis）：
 *   1.查看工具：D:\Java\jdk1.8.0_162\bin：
 *      1）jconsole.exe
 *      2）jmc.exe
 *      3）jvisualvm.exe   需要安装插件
 */
@SpringBootApplication
@PropertySource("classpath:my.properties")
public class App {
    public static void main(String[] args) {
        ConfigurableApplicationContext context = SpringApplication.run(App.class, args);
        System.out.println(context);
        //context.close();
    }
}
